package com.namazustudios.catfish.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Used to name components of the application.  Things that may be named
 * are things such as Converters and ValueProviders.  If this does not exist
 * for a given type then the fully qualified name of the class will be used.
 * 
 * @author patricktwohig
 * 
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Name {

	/**
	 * Returns the name of the object.
	 * 
	 * @return the name
	 */
	public String name();

}
